MuleSoft Accelerator for Retail
Use case 5 - Deliver relevancy with Data Cloud
Synchronize and unify customer profile data into a customer data platform so that you can personalize interactions by customer segment
Contents
Overview
Delivering personalized interactions via marketing campaigns and commerce transactions is challenging. They require unified customer profile data to enable targeted and measurable campaigns. However, the data needed to drive impactful, personalized interactions is often siloed and inaccessible where it is needed most.
This use case unlocks and unifies critical customer profile data so that CMOs and their marketing teams can more effectively run targeted campaigns. By unifying data into a Data Cloud, teams will be able to intelligently segment customers without duplication or manual processes.
Ultimately, retail organizations will be able to deliver more personalized interactions via marketing and commerce platforms faster.
Description
This use case provides MuleSoft System and Process APIs and implementation templates to surface customer profile data from OMS, ERP, PIM, and data lakes. The data can then be stored in Salesforce Data Cloud for segmentation. The information in Data Cloud can then be retrieved and leveraged at the marketing and commerce platform level for an improved user experience.
Glossary
Term | Definition |
---|---|
Data Cloud | Salesforce Data Cloud Platform. |
CIM | The Cloud Information Model defines a set of standard data structures that can be used as canonical representations of common entities for integrating systems. |
Global Data | A Global Data service provides an accurate, consistent, and complete copy of business data for use by enterprise applications and business partners while also providing a means to link that copy to occurrences in other systems. |
PIM | The system responsible for managing product information for sales orders. |
Goals
- Support the retrieval of real-time updates from Snowflake and Microsoft Azure for loyalty, subscription, email engagement, and web engagement.
- Display curated customer information in Salesforce Data Cloud.
- Support the creation of email campaigns in Adobe Marketo.
- Support the creation of promotions in Salesforce B2C CommerceCloud.
Use case considerations
- Orders, customers, and products are ingested into Salesforce Data Cloud from Salesforce Service Cloud using native integration.
- Salesforce Data Cloud APIs support both bulk and streaming options to ingest data.
- Salesforce Data Cloud publishes segments every 24 hours.
- The unified customer profile in Data Cloud is based on the email address of the customer.
- The three segments created in this solution are as follows:
- Customers with Average/Total purchases worth more than $500 made in the last 6 months.
- Loyalty Program members with Loyalty points > 5000 and shoppers with Gold Tier subscription who haven't purchased in the last 6 months.
- Shoppers who haven't visited the site in one year.
Technical considerations
- Native integration from Salesforce Data Cloud to Salesforce Marketing Cloud and Amazon S3 are used to send the targeted customer list.
- MDM System API is used to lookup Customer IDs.
End-to-end scenarios
- Curated email campaigns are created in Marketo for each of the segments created in Salesforce Data Cloud.
- Promotion campaigns are created in Salesforce B2C Commerce Cloud for each of the segments created in Salesforce Data Cloud.
Solution definition
This solution enables Salesforce Data Cloud to create curated customer information by ingesting data from different sources and unifying them by the email address. This information is then published to Amazon S3 buckets. The data from the Amazon S3 buckets can be used to reach the targeted audience by creating email campaigns in Marketo and promotion campaigns in Salesforce B2C Commerce Cloud.
Before you begin
The Getting Started with MuleSoft Accelerators guide provides general information on getting started with the accelerator components. This includes instructions on setting up your local workstation for configuring and deploying the applications. |
Goal
Display email campaigns in Marketo and promotions in Salesforce B2C Commerce Cloud.
Steps
- Update a customer’s loyalty points in Snowflake.
- Update the number of page visits in Azure Cosmos DB.
- Publish the updated loyalty points and page visits to Salesforce Data Cloud.
- Salesforce Data Cloud runs on a schedule of 24 hours whereby these updates are sent to Marketo and Salesforce B2C Commerce Cloud.
- An email campaign is created in Marketo welcoming the customer to shop at a given discount.
- A promotion campaign is created in B2C Commerce Cloud and the customer will see a discount for their next purchase when they login to the B2C Commerce Cloud.
Use case extension
Segments can be published near real-time in Salesforce Data Cloud.
Assumptions and constraints
The following guides or constrain the solution design at a high level:
- Loyalty, Subscription, Email Engagement, and Web Engagement objects are currently not supported in CIM. Hence, a custom representation of these objects are defined as RAML libraries in the API specifications.
- Loyalty, Subscription, Email Engagement, and Web Engagement data are imported into Snowflake and MS Azure Cosmos DB using
.csv
files.
API-led diagram
High-level architecture
Deliver Relevancy with Data Cloud
Data sync for customers, products, and orders
Sequence diagram
The diagram below illustrates the sequence of processing the loyalty, subscription, email engagement, and web engagement of a customer from Snowflake and Azure and integrating it with Salesforce Data Cloud. The curated customer information from Salesforce Data Cloud can then be used to connect to Marketo and Salesforce B2C Commerce Cloud.
Processing logic
The primary handling and orchestration of retrieving real-time or batch updates of loyalty, subscription, email engagement, and web engagement is implemented in the DataLake Process API. This process can be described as follows:
- Retrieve loyalty and subscription data using the Snowflake System API.
- Retrieve email engagement and web engagement using the Azure System API.
- Publish the retrieved data to the queue.
- The Data Cloud Process API picks up the data from the queue and invokes the Salesforce Data Cloud System API to publish the retrieved data to Data Cloud.
- Data streams are created in Salesforce Data Cloud to ingest the aforementioned data.
- Salesforce Data Cloud creates a unified profile using the email address attribute.
- Salesforce Data Cloud publishes the segments every 24 hours to Amazon S3.
- The DataLake Process API gets notified whenever a new file is uploaded to S3, it processes it and then publishes it to the queue.
- The Marketing Process API subscribes to the queue.
- The Marketing Process API creates email campaigns in Marketo. If an email campaign already exists, it updates the customer lists in Marketo to ensure only new customers get the emails.
- The Marketing Process API looks up the MDM Database using the MDM System API to get the B2C Customer ID given the email address.
- Using the B2C Customer ID, the Marketing Process API applies discount promotions to the customers.
Success conditions
After successfully completing the processing in all target systems, the following conditions must be met:
- The number of customers in Salesforce Data Cloud segments match the customer list in Marketo email campaigns and B2C Commerce Cloud promotion campaigns.
- The customer receives an email inviting them to visit the B2C Commerce storefront.
- The customer gets a discount promotion applied when they purchase a product in B2C Commerce Cloud.
Mappings
Source type mappings
The following table summarizes how representations of order, customer, and product from each system are mapped to CIM types:
Source System | Source Type | CIM Types | Mapping Notes |
---|---|---|---|
B2C Commerce | Product | Product ProductCategory ProductCatalog PriceBook |
Relevant fields only |
Salesforce | Product,Pricebook | Product ProductCategory ProductCatalog PriceBook |
Relevant fields only |
Salesforce | Orders | SalesOrder | Relevant fields only |
Salesforce | Account | Organization Customer Contact Address Contact Email Contact Phone |
Relevant fields only |
Person Account | Individual Customer Contact Address Contact Email Contact Phone |
Relevant fields only | |
Contact | Individual Contact Address Contact Email Contact Phone |
Similar mappings as for Person Accounts but at the Individual level only |
Target type mappings
The following table summarizes how representations of a product from each system is mapped from CIM types:
Target System | CIM Type | Target Types | Mapping Notes |
---|---|---|---|
Salesforce Data Cloud | Product ProductCategory ProductCatalog PriceBook |
Product ProductCategory ProductCatalog PriceBook |
Relevant fields only |
Salesforce Data Cloud | Product ProductCategory ProductCatalog PriceBook |
Product PriceBook |
Relevant fields only |
Salesforce Data Cloud | SalesOrder | Orders | Relevant fields only |
Salesforce Data Cloud | Customer Individual Contact Address Contact Email Contact Phone |
PersonAccount | Relevant fields only |
Customer Organization Contact Address Contact Email Contact Phone |
Account | Address fields mapped directly | |
Individual Contact Address Contact Email Contact Phone |
Contact | Similar mappings as for Person Accounts but at the Individual level only |
Downloadable assets
System APIs
- RCG Azure Cosmos DB System API | API Specification | Implementation Template
- RCG B2C Commerce System API | API Specification | Implementation Template
- RCG Marketo System API | API Specification | Implementation Template
- RCG Salesforce CDP System API | API Specification | Implementation Template
- RCG Snowflake System API | API Specification | Implementation Template
Process APIs
- RCG Customer Data Platform Process API | API Specification | Implementation Template
- RCG DataLake Process API | API Specification | Implementation Template
- RCG Marketing Process API | API Specification | Implementation Template